The present invention relates to a tone generator processing device, method and computer system which are suitable for lessening processing loads involved in tone data processing.
In recent years, many personal computers are equipped with a tone generator LSI to carry out various sorts of sound processing. Typical examples of the sound processing carried out by the tone generator LSI include a reproduction process where tone data are generated on the basis of control data and waveform data. In this case, the waveform data are data obtained by sampling, at a predetermined rate, tones performed by musical instruments, and the control data designate tone color, reproduction pitch, tone volume, etc. Generally, the personal computer having the sound processing function comprises a CPU for controlling various operations of an entire tone generating apparatus in accordance with the operating system (OS), the tone generator LSI, a main memory for storing the waveform and control data and other application programs, and a bus for connecting various components of the apparatus to provide for necessary data exchange therebetween.
The tone generator LSI has to obtain data necessary for the processing from the main memory via the bus. However, if the bus is used by the tone generator LSI for a long time, the time when other application can use the bus is reduced significantly, which would result in unsmooth operations in the computer system as a whole. To avoid such inconveniences, the tone generator LSI generates a plurality of tone data per predetermined frame that is set to equal a time required for outputting 256 samples of waveform data at an output sampling frequency (rate of digital-to-analog conversion) of 48 kHz, and to this end, the computer system collectively transmits (“burst-transfers”) data, necessary for the processing in each frame, from the main memory to the tone generator LSI on a frame-by-frame basis.
FIG. 5 is a functional block diagram showing principal components in a typical example of the conventional tone generator LSI. Assume that this illustrated example is capable of simultaneously generating a plurality of tone colors, and processing corresponding to these tone colors will each be called a “channel” or “ch”.
Waveform data WD input to the tone generator LSI are data sampled at various sampling rates such as 44.1 kHz, 22.05 kHz, 11.025 kHz and 8 kHz. Pitch processing PT performs a pitch conversion process on the waveform data WD to generate pitch-converted waveform data WD′ corresponding to the output sampling rate of 48 kHz, during which time sampling rate conversion and pitch shift processes are performed simultaneously. When, for example, the waveform data WD of a given channel, having an 8 kHz sampling rate, are to be reproduced with no pitch shift, about 44 samples of the waveform data WD are transferred to the pitch processing PT, which, in turn, converts the number of the samples to “256” through the pitch conversion process.
Next, filter processing FIL performs a second-order IIR filter process on the waveform data WD′, and then subjects the thus-filtered data to amplification processing AMP for tone volume adjustment. After that, mixer processing MIX stores the tone data generated in the above-mentioned manner into an internal buffer.
Through the above-mentioned processing, 256 samples are first generated for channel ch1. Then, 256 samples are generated for next channel ch2 in a similar manner and added to corresponding ones of the 256 samples for channel ch1, to thereby provide 256 accumulated samples. Such operations are performed a predetermined number of times corresponding to the number of the channels, so that 256 accumulated samples for the plurality of channels are ultimately provided. The aforesaid processes are performed repeatedly in each of the frames, and thereby accumulation of the tone data of the plurality of channels and simultaneous generation of a plurality of tones are achieved.
As mentioned, the conventional LSIs are arranged in such a manner that the number of samples per frame is converted to that corresponding to the output sampling rate through the pitch processing PT prior to the internal processing such, as the filter processing FIL and amplification processing AMP, so that the internal processing is then carried out at the output sampling rate.
Generally, the processing loads of the tone generator LSI would increase as the number of samples to be processed per frame period increases. Particularly, with the above-discussed conventional tone generator LSIs, their processing loads tend to be very heavy due to the arrangement that the internal processing is executed after the sampling rate of the waveform data WD is raised up to the uniform output sampling rate.
Further, in the sound processing carried out by computer systems, a so-called “3D (three-dimensional) sound positioning” process is sometimes employed to achieve sound reproduction full of a sense of realism. According to this 3D sound positioning process, a “head-related transfer function” HRTF for converting a waveform of a sound produced from a sound source into another waveform corresponding to a sound transmitted to the right and left ears of a dummy head is measured in advance in association with coordinates of the sound source, and a coefficient of the head-related transfer function HRTF (which will hereinafter called a “HRTF” coefficient) is varied dynamically as the coordinates of the sound source change. For example, the 3D sound positioning process can be suitably applied to game software to allow the location of an effect sound source to be moved from left to right in such an imaginary scene where an airplane flies from left to right. For this reason, there has been an increasing demand that the 3D sound positioning process be implemented by the tone generator LSI. There is another demand that an effect process for imparting a sound effect, such as a reverberation or chorus effect, be implemented by the tone generator LSI.
However, in cases where the 3D sound positioning process and effect process are incorporated in the tone generator LSI, the processing loads of the tone generator LSI would increase even further, and a significant increase in costs is required to meet the demands. Therefore, in the conventional computer systems, the 3D sound positioning process and effect process, which would involve heavy processing loads, are carried out by the CPU.
To reduce the processing loads of the tone generator LSI, it may be proposed that the filter processing FIL, amplification processing AMP, etc. be performed directly on the input waveform data WD and the pitch processing PT is performed last to raise the sampling rate of the waveform data WD up to the output sampling rate. However, in this case, there arises needs to previously make sets of coefficient data, corresponding in number to various sampling rates of the input waveform data WD, ready for use in the filter processing FIL and to also switch between the coefficient data sets in accordance with the input waveform data WD. Further, if new functions, such as the 3D sound positioning process and effect process, are incorporated in the tone generator LSI, then another problem would be encountered that the number of the coefficient data to be made in advance has to be increase even further.